/**
 */
package fUML.Semantics.Actions.IntermediateActions;

import fUML.Semantics.Actions.BasicActions.ActionActivation;

import fUML.Semantics.Classes.Kernel.Link;
import fUML.Semantics.Classes.Kernel.Value;

import fUML.Syntax.Classes.Kernel.Association;
import fUML.Syntax.Classes.Kernel.Property;
import fUML.Syntax.Classes.Kernel.StructuralFeature;

import org.eclipse.emf.common.util.EList;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Structural Feature Action Activation</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * A structural feature action activation is an action activation for a structural
 *                 feature action.
 * <!-- end-model-doc -->
 *
 *
 * @see fUML.Semantics.Actions.IntermediateActions.IntermediateActionsPackage#getStructuralFeatureActionActivation()
 * @model abstract="true"
 * @generated
 */
public interface StructuralFeatureActionActivation extends ActionActivation {
	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model ordered="false" featureRequired="true" featureOrdered="false"
	 * @generated
	 */
	Association getAssociation(StructuralFeature feature);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model ordered="false" associationRequired="true" associationOrdered="false" endRequired="true" endOrdered="false" oppositeValueRequired="true" oppositeValueOrdered="false"
	 * @generated
	 */
	EList<Link> getMatchingLinks(Association association, StructuralFeature end, Value oppositeValue);

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @model required="true" ordered="false" associationRequired="true" associationOrdered="false" endRequired="true" endOrdered="false"
	 * @generated
	 */
	Property getOppositeEnd(Association association, StructuralFeature end);

} // StructuralFeatureActionActivation
